package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.cp.api.entity.marketing.MarketingHotEntity;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface MarketingHotService extends IService<MarketingHotEntity> {

    /**
     * 打开次数记录
     *
     * @param id
     * @param type
     * @param wxExternalUserid
     * @param wxUserId
     * @param location
     * @param title
     * @param corpId
     * @return
     */
    void countOpen(String id, String type, String url, String wxExternalUserid, String wxUserId, String location, String title, Integer corpId, HttpServletResponse response) throws IOException;

    /**
     * 发送次数记录
     *
     * @param id
     * @param type
     * @param wxExternalUserid
     */
    void countSend(String id,String type,String wxExternalUserid);

    /**
     * 获取素材的打开和发送次数
     *
     * @return
     */
    List allList(Integer hotState);

    /**
     * 获取素材的打开和发送次数-侧边栏
     *
     * @return
     */
    List allListWechat(Integer hotState,String title);

    /**
     * 通过类型获取素材的打开和发送次数
     *
     * @param type
     * @param hotState
     * @return
     */
    List  getListByType(Integer type,Integer hotState);

    /**
     * 通过类型获取素材的打开和发送次数-侧边栏
     *
     * @return
     */
    List getListByTypeWechat(Integer type, Integer hotState,String title);

    /**
     * 发布热榜
     *
     * @param hotState
     */
    void saveAndRelease(Integer hotState);

    /**
     * 侧边栏获取发布方式
     *
     * @return
     */
    Map<String,Integer> hotState();

}
